package com.crm.service.sys;

import com.crm.model.entity.sys.UserInfo;
import com.crm.model.entity.sys.UserInfo;
import com.crm.model.vo.user.UserInfoVO;

import java.util.List;

/**
 * @author luojie
 * @date 2020/10/9 9:31
 */
public interface UserInfoDbService {

    /**
     * 根据用户id查询用户信息
     * @param userId
     * @return
     */
    UserInfo selectUserInfoByUserId(String userId);

    /**
     * 插入用户
     * @param userInfo
     * @return
     */
    Boolean insertUserInfo(UserInfo userInfo);

    /**
     * 根据用户id更新用户信息
     * @param userInfo
     * @return
     */
    Boolean updateUserInfoByUserId(UserInfo userInfo);

    /**
     * 通过userId查询个人信息
     * @param userId 用户id
     * @return
     */
    UserInfoVO getUserInfo(String userId);

    /**
     * 根据用户id查询用户的下属
     * @param order 分组
     * @param userId 用户id
     * @param onTheJobSituation 在职状态  0在职  1离职
     * @return
     */
    UserInfo subordinateList(String order, String userId,String onTheJobSituation);

    /**
     * 根据账号表id查询用户信息
     * @param accountId
     * @return
     */
    UserInfoVO getUserInfoByAccountId(String accountId);

    /**
     * 根据用户名和公司名查询用户查询用户
     * @param userName 用户名
     * @param companyName 公司名
     * @return
     */
    UserInfo getUserInfoByUserNameAndCompanyName(String userName,String companyName);

    /**
     * 通过accountId查询
     * @param accountId
     * @return
     */
    UserInfoVO selectByAccountId(String accountId);
}
